﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>#NoEnv</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8"><LINK 
href="../css/commands.css" type=text/css rel=stylesheet><LINK media=print 
href="../css/print.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.5512" name=GENERATOR></HEAD>
<BODY>
<H1>#NoEnv <SPAN class=small65>[v1.0.43.08+]</SPAN> </H1>


<P>避免检查空变量是否为环境变量(推荐所有新建脚本使用)。</P>
<P class=CommandSyntax>#NoEnv</P>
<P>指定 <EM>#NoEnv</EM> 这行在脚本的任意位置，防止空变量被作为潜在的环境变量来查找。例如：</P><PRE>#NoEnv
MsgBox %WinDir%</PRE>
<P>上面的<STRONG>不</STRONG>检索<STRONG> </STRONG>"WinDir" 环境变量(尽管通过在脚本顶部附近加入 
<EM>WinDir := A_WinDir</EM> 能解决)。</P>
<P>指定 <EM>#NoEnv</EM> 是推荐所有新建脚本使用的，因为：</P>
<OL>
  <LI>当空变量被用在一个表达式或命令里的时候，它显著地改善性能。其同样改善&nbsp;<A 
  href="DllCall.htm">DllCall</A>&nbsp;的性能，当未引用的变量类型被使用的时候(例如 int&nbsp;对 "int")。
  <LI>它防止由于那些环境变量的名称意外地被脚本使用的变量名匹配而造成的错误。
  <LI>将来的AutoHotkey版本可能让此行为模式作为默认。</LI></OL>
<P>为了有助于改善切换到&nbsp;#NoEnv 的情况，内置的 <A 
href="../Variables.htm#ComSpec">Comspec</A>&nbsp;和 <A 
href="../Variables.htm#ProgramFiles">ProgramFiles</A> 
变量被添加进来。它们与相应的环境变量包含同样的字串。</P>
<P>当 #NoEnv 起作用时，脚本应该使用 <A href="EnvGet.htm">EnvGet</A> 来找回环境变量，或使用内置的像 <A 
href="../Variables.htm#WinDir">A_WinDir</A>&nbsp;这类变量。</P>
<h3>相关命令</h3>
<P><A href="EnvGet.htm">EnvGet</A>, <A 
href="../Variables.htm#ComSpec">Comspec</A>, <A 
href="../Variables.htm#ProgramFiles">ProgramFiles</A>, <A 
href="../Variables.htm#WinDir">A_WinDir</A></P>
</BODY></HTML>
